package com.crm.business.admin.mapper;

import com.crm.common.admin.entity.BO.AdminUserBO;
import com.crm.common.admin.entity.BO.UserBookBO;
import com.crm.common.admin.entity.PO.AdminUser;
import com.crm.common.admin.entity.VO.AdminUserVO;
import com.crm.common.admin.entity.VO.HrmSimpleUserVO;
import com.crm.common.admin.entity.VO.UserBookVO;
import com.crm.common.ka.core.entity.BasePage;
import com.crm.common.ka.core.entity.UserInfo;
import com.crm.business.servlet.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author zhangzhiwei
 * @since 2020-04-27
 */
public interface AdminUserMapper extends BaseMapper<AdminUser> {
    /**
     * 根据用户名查询
     *
     * @param username username
     * @return info
     */
    List<Map<String, Object>> findByUsername(@Param("username") String username);

    /**
     * 查询用户列表
     * @param adminUserBO data
     * @param page 分页参数
     * @return data
     */
    BasePage<AdminUserVO> queryUserPage(BasePage<AdminUserVO> page, @Param("data") AdminUserBO adminUserBO);

    /**
     * 查询用户列表
     * @param adminUserBO data
     * @return data
     */
    List<AdminUserVO> queryUserList(@Param("data") AdminUserBO adminUserBO);

    /**
     * 查询通讯录
     * @param page
     * @param userBookBO
     * @return
     */
    BasePage<UserBookVO> queryListName(BasePage<UserBookVO> page, @Param("data") UserBookBO userBookBO);

    List<HrmSimpleUserVO> querySimpleUserByDeptId(Integer deptId);

    List<HrmSimpleUserVO> querySimpleUserByDeptIdAndExamine(Integer deptId);

    UserInfo queryLoginUserInfo(@Param("userId") Long userId);

    List<Long> queryChannelSales();

    /**
     * 获取营销讲师集合
     * @param roleId 营销讲师Id
     * @return
     */
    List<AdminUserVO> queryTeacherList(@Param("roleId") Integer roleId);


    List<Long> queryUserListByRoleIds(@Param("roleIds") long[] roleIds);

    List<Long> queryUserListByDeptIds(@Param("roleIds") long[] ids);

    int insertAdminUser(AdminUser adminUser);

//    /**
//     * 剩余坐席
//     * @param orgId
//     * @param date
//     * @return
//     */
//    public Integer residueSeats(@Param("orgId")String orgId,@Param("date")String date);
//
//    /**
//     * 坐席总数
//     * @param orgId
//     * @return
//     */
//    public Integer allSeats(@Param("orgId")String orgId);
//    /**
//     * 获取一个坐席
//     * @param orgId
//     * @param date
//     * @return
//     */
//    public Long getOneSeats(@Param("orgId")String orgId,@Param("date")String date);
//
//    /**
//     * 绑定坐席
//     * @param userId
//     * @param id
//     * @param orgId
//     * @param date
//     * @return
//     */
//    public int bindSeats(@Param("userId")Long userId,@Param("id")Long id,@Param("orgId")String orgId,@Param("date")String date);
//
//    /**
//     * 获取绑定的坐席id
//     * @param orgId
//     * @param userId
//     * @return
//     */
//    public Long getBindSeatsId(@Param("orgId")String orgId,@Param("userId")Long userId,@Param("date")String date);
//
//
//    /**
//     * 解绑绑定坐席
//     * @param userId
//     * @param id
//     * @param orgId
//     * @return
//     */
//    public int unBindSeats(@Param("userId")Long userId,@Param("id")Long id,@Param("orgId")String orgId);
}
